
/**
 * Deze klasse bevat specifieke info voor de KantineMedewerks wat een subklasse is van person
 * 
 * @author Stephan Veenstra & Michel Jansma 
 * @version (2010.10.11)
 */
public class Kantinemedewerker extends Person implements DiscountCard {

    //Instantie variabelen van het type String
    private String medewerkersNummer;
    //Instantie variabelen van het type boolean
    private boolean kassaRecht;
    //Klasse variabelen van het type boolean
    private static final boolean HAS_MAX_DISCOUNT   = false;
    //Klasse variabelen van het type double
    private static final double DISCOUNT_PERCENTAGE = 35,
                                MAX_DISCOUNT        = 1;

    /**
     * @method Kantinemedewerker
     * @params null
     * @info   Constructor van Student class, welke geen parameters meekrijgt
     * @return null
     */
    public Kantinemedewerker() {
        //Call to super class
        super(307030, "Lina", "Laurens", 'V', new int[]{ 2, 7, 1980 });
        //Initialiseren korting data
        super.setDiscountData(MAX_DISCOUNT, DISCOUNT_PERCENTAGE, HAS_MAX_DISCOUNT);
        //Initialiseer instantie variabele medewerkersNummer
        this.setMedewerkersNummer("877");
        //Initialiseer instantie variabele kassaRecht
        this.setKassaRecht(true);
    }

    /**
     * @method Kantinemedewerker
     * @params <int>BSN, <String>firstname, <String>lastname, <char>gender, <int[]>dateOfBirth, <String>medewerkersNummer, <boolean>kassaRecht
     * @info   Overloaded constructor van Kantinemedewerker class
     * @return null
     */
    public Kantinemedewerker(int BSN, String firstname, String lastname, char gender, int[]dateOfBirth, String medewerkersNummer, boolean kassaRecht) {
        //Call to super class
        super(BSN, firstname, lastname, gender, dateOfBirth);
        //Initialiseren korting data
        super.setDiscountData(MAX_DISCOUNT, DISCOUNT_PERCENTAGE, HAS_MAX_DISCOUNT);
        //Initialiseer instantie variabele medewerkersNummer
        this.setMedewerkersNummer(medewerkersNummer);
        //Initialiseer instantie variabele kassaRecht
        this.setKassaRecht(kassaRecht);
    }
    
    /**
     * Zet de medewerkersnummer van de kantine medewerken
     * @param medewerkersNummer
     */
    public void setMedewerkersNummer(String medewerkersNummer) {
        this.medewerkersNummer = medewerkersNummer;
    }
    
    /**
     * Zet het kassaRecht voor de kantine medewerken
     * @param kassaRecht
     */
    public void setKassaRecht(boolean kssaRecht) {
        this.kassaRecht = kassaRecht;
    }
    
    /**
     * @return de medewerkersNummer van de kantineMedewerker
     */
    public String getMedewerkersNummer() {
        return this.medewerkersNummer;
    }
    
    /**
     * @return de medewerkers kassaRecht
     */
    public boolean getKassaRecht() {
        return this.kassaRecht;
    }
       
    /**
     * @method toString
     * @params null
     * @info   toont een overzicht van alle data, welke is ingevoerd voor de persoon en de medewerker
     * @return <String> data
     */
    @Override
    public String toString() {
        return super.toString() + (
            "MedewerkersNummer : " + this.getMedewerkersNummer() + "\n" + 
            "Kassarecht        : " + this.getKassaRecht()
        );
    }

}
